package com.aqie.arithmetic.datastructure;

public class QuickFind extends UFBase{
    public QuickFind(int N) {
        super(N);
    }

    protected int find(int p) {
        return id[p];
    }

    public void union(int p, int q){
        // 将 p q 归并到相同的分量中
        int pID = find(p);
        int qID = find(q);

        // 如果 pq 已在相同分量不操作
        if (pID == qID) return;

        // 将p的分量重命名为q的名称
        for (int i = 0; i < id.length; i++){
            if (id[i] == pID) id[i] = qID;
        }
        count--;
    }
}
